package com.lianjia.sh.se.esb.spi.model;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

/**
 *
 * Created by yangsp1 on 16/7/15.
 */
public interface Message extends Serializable {
    /**
     * 消息uuid，用于分布式/集群环境追踪同一消息，及失败重试
     * 自动生成，非空
     * @return string
     * @author yangjiangping
     * @since 2016 -07-15 15:34
     */
    public String getMsgUUId();

    public void setMsgUUId(String msgUUId);

    /**
     * 业务数据
     *
     * @return string
     * @author yangjiangping
     * @since 2016 -07-15 15:34
     */
    public Object getData();

    public void setData(Object data);

    /**
     * 项目分类：消息来源所属项目
     *
     * 非空
     * @return string
     * @author yangjiangping
     * @since 2016 -07-15 15:34
     */
    public String getProjectType();

    public void setProjectType(String projectType);

    /**
     * 业务(服务)分类：消息来源所属业务
     * 如：业主中心-短信
     *    房源登盘-登盘
     *
     * 非空
     * @return string
     * @author yangjiangping
     * @since 2016 -07-15 15:34
     */
    public String getServiceType();

    public void setServiceType(String serviceType);

    /**
     * 操作该业务的员工号
     *
     * @return string
     * @author yangjiangping
     * @since 2016 -07-15 15:34
     */
    public Integer getOperatorEmpNo();

    public void setOperatorEmpNo(Integer empNo);

    /**
     * 操作该业务者的ip
     *
     * 非空
     * @return string
     * @author yangjiangping
     * @since 2016 -07-15 15:34
     */
    public String getOperatorIp();

    public void setOperatorIp(String ip);

    /**
     * 操作时间
     *
     * 自动生成，当前时间，非空
     * @return string
     * @author yangjiangping
     * @since 2016 -07-15 15:34
     */
    public Date getOperateTime();

    public void setOperateTime(Date operateTime);

    /**
     * 扩展数据
     * @return
     */
    public Map<String,Object> getExtendData();

    public void setExtendData(Map<String,Object> extendData);
}
